﻿using System.ComponentModel;

namespace Citi.Scheduler.Domain
{
    public class DatabaseEnums
    {
        public enum RepeatEvery
        {
            Day, Week, Month, Year
        }
    }

    public enum LibraryType
    {
        Development = 1,
        Test = 0,
        Production = 2,
    }

    public enum RoutineErrorStatus
    {
        Opened,
        Closed,
        [Description("Under Analysis")]
        UnderAnalysis,
        [Description("Under Correction")]
        UnderCorrection,
        Done
    }

    public enum MachineStatus
    {
        Stopped, Running, NotFound, Idle
    }

    public enum RoutineExecutionStatus
    {
        Scheduled = 0,
        Error = 1,
        [Description("In Progress")]
        InProgress = 2,
        Executed = 3,
        [Description("Executed with Errors")]
        ExecutedWithError = 4,
        [Description("Waiting for a free machine")]
        WaitingFreeMachine = 5,
        [Description("Waiting for the predecessor routine")]
        WaitingPredecessorRoutine = 6,
        [Description("Predecessor Routine With Error")]
        PredecessorRoutineWithError = 7,
        [Description("Predecessor Routine Not Scheduled")]
        PredecessorNotScheduled = 8,
        Canceled = 9,
        [Description("Waiting for a Specific Free Machine")]
        WaitingSpecificFreeMachine = 10,
        [Description("Canceled After Waiting")]
        CanceledAfterWaiting = 11,
        Stopped = 12
    }

    public enum Periodicity
    {
        Daily, Weekly, Monthly, Yearly, BusinessDay, MondayWednesdayFriday, TuesdayThursday
    }

    public enum MonthType
    {
        DayOfMonth, DayOfWeek
    }

    public enum MachineCenter
    {
        Scheduler, Monitor, Execution, None
    }
}
